import Vue from 'vue'
import Vuex from 'vuex'
import createPersistedState from 'vuex-persistedstate'
Vue.use(Vuex)

export default new Vuex.Store({
  plugins: [createPersistedState()],
  state: {
    user: '',
    // 历史报价
    historyPrice: [],
    // 品牌
    CarName: '',
    // 车系
    carSerier: '',
    // 车是那一年得款
    YearModel: '',
    arrData: [],
    // 循环以后的数组数据
    arryData: [],
    // 新车价格
    NewPrice: '',
    // arrData: {}
    // arrData: JSON.parse(window.localStorage.getItem(key))
    // arrData: JSON.parse(window.localStorage.getItem(key)),
    // 一个对象，存储当前登录的信息
    // 这里就不能写user:''时一个空字符串
    // user: ''
    // 而是写本地存储里面的值
    // user: JSON.parse(window.localStorage.getItem(key))
    // 计算机中的车系
    computSerise: '',
    // 车系中的车型
    computename: '',
    // 新车编码
    modelCode: '',
    dataBnak: [],
    // 计算机计算
    // 利率
    rate: ''
  },
  mutations: {
    // 状态的改变
    // changeArr (state, data) {
    //   // state.arrData = data
    // },
    setHistory (state, historyPrice) {
      state.historyPrice = historyPrice
    },

    setUser (state, arrData) {
      // state更新前的数据
      // data更新后的数据
      // state.arrData = arrData
      console.log(arrData)
      state.arrData.push(arrData)
      // 在登录后拿到token
      // this.$store.commit('setUser', res, data)
      // 当页面时vuex里面值会没有
      // 要是存储token，持久化也要存到本地中,
      // 本地存储只会存储字符串,对象不要转化,Json.stringify

      // window.localStorage.setItem(key, JSON.stringify(state.arrData))
      // console.log(JSON.stringify(state.arrData))
      // Window.localStorage.setItem('str', 1111)
    },
    delete (state, key) {
      state.arrData.forEach((item, index) => {
        if (index === key) {
          state.arrData.splice(index, 1)
        }
      })
    },
    deleteAll (state, key) {
      state.arrData.forEach((item, index) => {
        key.forEach((i) => {
          if (index === i) {
            state.arrData.splice(index, 1)
          }
        })
      })
    }
  },
  getters: {
    // 利用getter选择得选得项进行拼接
    carAllInfoModel: (state) => {
      if (state.CarName === '') {
        return null
      } else {
        return state.CarName + '/' + state.YearModel
      }
    },
    // 品牌
    gainCarName (state, name) {
      state.CarName = name
    },
    // 车系
    gainserier (state, serier) {
      state.carSerier = serier
    },
    // 车是那一年款得
    gainYearModel (state, name) {
      state.YearModel = name
    },
    // 计算中的车系
    getComputeSerise (state, name) {
      state.computSerise = name
    },
    getComputename (state, name) {
      state.computename = name
    },
    // 新车编码
    newCarCode (state, name) {
      state.modelCode = name
    },
    // 接收利率
    reseiveRate (state, rate) {
      state.rate = rate
    },
    getNewPrice (state, name) {
      state.NewPrice = name
    }

  },
  actions: {

  },
  modules: {
  }
})
